package com.zhuzi.guicollect.controller.fx;

import com.jfoenix.controls.JFXButton;
import com.jfoenix.controls.JFXCheckBox;
import com.jfoenix.controls.JFXSlider;
import com.zhuzi.guicollect.Main;
import com.zhuzi.guicollect.jsl.FavoriteResolver;
import com.zhuzi.guicollect.ui.TabView;
import com.zhuzi.guicollect.utils.ThreadPools;
import de.felixroske.jfxsupport.FXMLController;
import javafx.event.ActionEvent;
import javafx.fxml.FXML;
import javafx.fxml.Initializable;
import javafx.scene.control.TextField;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;

import java.net.URL;
import java.util.ResourceBundle;

/**
 * @author MI
 * @ClassName FavoriteController.java
 * @createTime 2021年11月04日 17:23:00
 */
@Slf4j
@FXMLController
public class FavoriteController implements Initializable {

    /**
     * 滑块
     */
    @FXML
    public JFXSlider casplit;

    /**
     * 保存地址
     */
    @FXML
    public TextField favDir;
    /**
     * 保存全部
     */
    @FXML
    public JFXCheckBox checkFavAll;
    public JFXButton btnBackFirstView;
    @Autowired
    MainController mainController;

    /**
     * 只有这个方法中才能使用呢组件。其他方法无法使用组件，因为没有初始化完成
     */
    @Override
    public void initialize(URL location, ResourceBundle resources) {
        log.info("init");
        int favPageNum = FavoriteResolver.getFavPage();
        log.info("收藏共计{}页", favPageNum);
        casplit.setMin(1);
        casplit.setMax(Math.max(favPageNum, 5));
        casplit.setBlockIncrement(1.0);
        //显示刻度
        casplit.setShowTickLabels(true);
        //显示 数值
        casplit.setShowTickMarks(true);
    }

    /**
     * 收藏采集
     */
    public void calFav(ActionEvent actionEvent) {
        log.info("采集-【收藏】页面");
        ThreadPools.poolExecutor.execute(() -> {
            Number value = casplit.getValue();
            //这样也可以获取到值
            String value1 = casplit.valueProperty().asString("%.0f").getValue();
            FavoriteResolver.reslover(favDir.getText(), value.intValue());
        });

    }

    public void backFitstView(ActionEvent actionEvent) {
        // Main.showView(MainView.class);
        mainController.init();
        // Main.sysShowView(MainView.class);
        Main.sysShowView(TabView.class);
    }
}
